COBOL এ ফাইল হ্যান্ডলিং (File Handling in COBOL)
COBOL একটি শক্তিশালী প্রোগ্রামিং ভাষা, যা বিশেষভাবে ব্যবসায়িক এবং ডেটা ম্যানিপুলেশন কাজে ব্যবহৃত হয়। এর মধ্যে ফাইল হ্যান্ডলিং অত্যন্ত গুরুত্বপূর্ণ, কারণ COBOL প্রোগ্রামগুলির মাধ্যমে ব্যবসায়িক ডেটা যেমন পেমেন্ট, গ্রাহক তথ্য, রিপোর্ট ইত্যাদি ফাইল থেকে পড়া এবং লেখা করা হয়। COBOL এ ফাইল হ্যান্ডলিং কাজের জন্য বিশেষভাবে FILE SECTION এবং I/O STATEMENTS ব্যবহার করা হয়।
COBOL এ ফাইল হ্যান্ডলিং এর মূল উপাদান
COBOL এ ফাইল হ্যান্ডলিং সাধারণত নিম্নলিখিত প্রধান ধাপগুলোতে ভাগ করা হয়:
- FILE SECTION: ফাইলের ধরন এবং কাঠামো সংজ্ঞায়িত করা হয়।
- I/O STATEMENTS: ফাইলের সাথে কাজ করার জন্য OPEN, READ, WRITE, CLOSE ইত্যাদি স্টেটমেন্ট ব্যবহার করা হয়।
১. FILE SECTION (ফাইল সংজ্ঞা)
COBOL প্রোগ্রামে ফাইল হ্যান্ডলিংয়ের জন্য প্রথমে DATA DIVISION এর FILE SECTION এ ফাইল সংজ্ঞায়িত করা হয়। এখানে ফাইলের কাঠামো এবং ডেটা ফর্ম্যাট নির্ধারণ করা হয়।
সিনট্যাক্স:
DATA DIVISION.
FILE SECTION.
FD file-name.
01 record-name.
05 field-name1 PIC X(10).
05 field-name2 PIC 9(5).
...এখানে:
- FD (File Description) ব্যবহার করে ফাইলের ধরন নির্ধারণ করা হয়।
- record-name এ ফাইলের রেকর্ডের কাঠামো এবং প্রতিটি ফিল্ডের তথ্য নির্ধারণ করা হয়।
উদাহরণ:
DATA DIVISION.
FILE SECTION.
FD CUSTOMER-FILE.
01 CUSTOMER-RECORD.
05 CUSTOMER-ID PIC 9(5).
05 CUSTOMER-NAME PIC X(30).
05 CUSTOMER-AGE PIC 99.এখানে CUSTOMER-FILE একটি ফাইল যার রেকর্ডের মধ্যে তিনটি ফিল্ড থাকবে: CUSTOMER-ID, CUSTOMER-NAME, এবং CUSTOMER-AGE।
২. I/O STATEMENTS (ফাইল অপারেশন)
COBOL প্রোগ্রামে ফাইলের সাথে ইন্টারঅ্যাক্ট করার জন্য বিভিন্ন I/O স্টেটমেন্ট ব্যবহার করা হয়, যেমন OPEN, READ, WRITE, CLOSE।
OPEN স্টেটমেন্ট
ফাইল ব্যবহারের জন্য প্রথমে OPEN স্টেটমেন্ট ব্যবহার করতে হয়। এটি ফাইলটি ওপেন করে, যাতে পরবর্তী কার্যক্রম সম্পাদিত হয়।
উদাহরণ:
OPEN INPUT CUSTOMER-FILE.এখানে, INPUT কিওয়ার্ডটি ফাইল পড়ার জন্য ব্যবহৃত হয়েছে। ফাইলটি রিড-অনে (পড়ার জন্য) ওপেন করা হচ্ছে।
READ স্টেটমেন্ট
READ স্টেটমেন্ট ফাইল থেকে রেকর্ড পড়তে ব্যবহৃত হয়।
উদাহরণ:
READ CUSTOMER-FILE INTO CUSTOMER-RECORD
AT END
DISPLAY 'End of file reached'
NOT AT END
DISPLAY 'Customer ID: ' CUSTOMER-ID
END-READ.এখানে, ফাইল থেকে রেকর্ড পড়ার পর AT END শর্তটি চেক করা হয়, অর্থাৎ ফাইলের শেষ না হলে NOT AT END ব্লকটি কার্যকর হবে।
WRITE স্টেটমেন্ট
ফাইলের মধ্যে নতুন রেকর্ড লেখা WRITE স্টেটমেন্টের মাধ্যমে করা হয়।
উদাহরণ:
WRITE CUSTOMER-RECORD.এখানে CUSTOMER-RECORD ফাইলের মধ্যে একটি নতুন রেকর্ড হিসাবে লেখা হবে।
CLOSE স্টেটমেন্ট
ফাইলের সাথে কাজ শেষে, ফাইলটি বন্ধ করতে CLOSE স্টেটমেন্ট ব্যবহার করা হয়।
উদাহরণ:
CLOSE CUSTOMER-FILE.এটি ফাইলটি বন্ধ করে দেয়, যাতে আর কোনো I/O অপারেশন চালানো না যায়।
৩. COBOL এ ফাইল হ্যান্ডলিং এর উদাহরণ
নিচে একটি পূর্ণাঙ্গ উদাহরণ দেওয়া হলো যেখানে একটি ফাইলে নতুন গ্রাহকের তথ্য লেখা এবং সেই ফাইল থেকে তথ্য পড়া দেখানো হয়েছে।
IDENTIFICATION DIVISION.
PROGRAM-ID. FileHandlingExample.
DATA DIVISION.
FILE SECTION.
FD CUSTOMER-FILE.
01 CUSTOMER-RECORD.
05 CUSTOMER-ID PIC 9(5).
05 CUSTOMER-NAME PIC X(30).
05 CUSTOMER-AGE PIC 99.
WORKING-STORAGE SECTION.
01 EOF-FLAG PIC X VALUE 'N'.
PROCEDURE DIVISION.
OPEN OUTPUT CUSTOMER-FILE
MOVE 10001 TO CUSTOMER-ID
MOVE 'John Doe' TO CUSTOMER-NAME
MOVE 30 TO CUSTOMER-AGE
WRITE CUSTOMER-RECORD
CLOSE CUSTOMER-FILE.
OPEN INPUT CUSTOMER-FILE
PERFORM READ-CUSTOMER UNTIL EOF-FLAG = 'Y'
CLOSE CUSTOMER-FILE.
STOP RUN.
READ-CUSTOMER.
READ CUSTOMER-FILE INTO CUSTOMER-RECORD
AT END
MOVE 'Y' TO EOF-FLAG
NOT AT END
DISPLAY 'Customer ID: ' CUSTOMER-ID
DISPLAY 'Customer Name: ' CUSTOMER-NAME
DISPLAY 'Customer Age: ' CUSTOMER-AGE
END-READ.এখানে:
- WRITE স্টেটমেন্ট ব্যবহার করে একটি নতুন গ্রাহকের তথ্য CUSTOMER-FILE এ লেখা হচ্ছে।
- READ স্টেটমেন্ট ব্যবহার করে CUSTOMER-FILE থেকে তথ্য পড়া হচ্ছে এবং EOF-FLAG ব্যবহার করে ফাইলের শেষ চেক করা হচ্ছে।
সারসংক্ষেপ
COBOL এ ফাইল হ্যান্ডলিং অত্যন্ত গুরুত্বপূর্ণ একটি অংশ, যা বিভিন্ন ধরনের ডেটা ফাইল থেকে পড়া, লেখা এবং আপডেট করার জন্য ব্যবহৃত হয়। COBOL এর FILE SECTION এর মাধ্যমে ফাইলের কাঠামো সংজ্ঞায়িত করা হয় এবং OPEN, READ, WRITE, CLOSE স্টেটমেন্ট ব্যবহার করে ফাইলের সাথে বিভিন্ন কার্যক্রম সম্পাদন করা হয়। ফাইল হ্যান্ডলিংয়ের মাধ্যমে COBOL প্রোগ্রামে ডেটার স্থায়ী সংরক্ষণ এবং ব্যবস্থাপনা করা সম্ভব হয়, যা ব্যবসায়িক অ্যাপ্লিকেশনগুলির জন্য অপরিহার্য।
ফাইল এর প্রকারভেদ: Sequential, Indexed, এবং Relative Files
COBOL প্রোগ্রামে ডেটা স্টোর করতে এবং ব্যবস্থাপনা করতে বিভিন্ন ধরনের ফাইল ব্যবহার করা হয়। প্রতিটি ফাইল প্রকারের রয়েছে তার নিজস্ব ব্যবহার এবং সুবিধা। সাধারণত COBOL-এ তিনটি প্রধান ধরনের ফাইল ব্যবহৃত হয়: Sequential Files, Indexed Files, এবং Relative Files। নিচে প্রতিটি ফাইল প্রকারের বিস্তারিত আলোচনা করা হলো।
১. Sequential Files (সিকোয়েন্সিয়াল ফাইল)
Sequential Files এমন ফাইল যেখানে ডেটা সংরক্ষণ করা হয় একটি নির্দিষ্ট সিকোয়েন্স বা ধারাবাহিকভাবে। এই ফাইলগুলিতে ডেটা স্টোর করা হয় একের পর এক, এবং শুধুমাত্র সিকোয়েন্স অনুযায়ী অ্যাক্সেস করা যায়। এতে তথ্য পড়া এবং লেখা সহজ, কিন্তু নির্দিষ্ট ডেটা অনুসন্ধান করা তুলনামূলকভাবে ধীর গতিতে হয়।
- ব্যবহার: যখন ডেটা বড় পরিমাণে ধারাবাহিকভাবে সংরক্ষণ এবং প্রসেস করতে হয়, তখন Sequential Files ব্যবহার করা হয়। এটি সাধারণত ব্যাকআপ ফাইল, লোগ ফাইল, এবং রিপোর্ট তৈরির ক্ষেত্রে ব্যবহৃত হয়।
- বৈশিষ্ট্য:
- ডেটা একসাথে লেখা হয় এবং একে একে পড়া হয়।
- ডেটা অ্যাক্সেস করার জন্য কোন নির্দিষ্ট কিওয়ার্ড বা ইনডেক্স থাকে না।
- অ্যাক্সেস করা সাধারণত সিকোয়েন্সে ঘটে, যা সময়সাপেক্ষ হতে পারে।
উদাহরণ:
SELECT CustomerFile ASSIGN TO 'CUST.DAT'
ORGANIZATION IS SEQUENTIAL.২. Indexed Files (ইনডেক্সড ফাইল)
Indexed Files এমন ফাইল যেখানে ডেটা সংরক্ষণ করা হয় একটি ইনডেক্স বা সূচক ব্যবহার করে, যা দ্রুত ডেটা খোঁজার সুবিধা প্রদান করে। এটি ডেটার মধ্যে একটি বা একাধিক কিরূপ নির্ধারণ করে, যার মাধ্যমে নির্দিষ্ট তথ্য দ্রুত খুঁজে পাওয়া যায়।
- ব্যবহার: Indexed Files ব্যবহৃত হয় যেখানে দ্রুত অনুসন্ধান এবং ডেটা অ্যাক্সেস করা প্রয়োজন, যেমন ইনভেন্টরি সিস্টেম, প্রোডাক্ট ক্যাটালগ, বা গ্রাহক তথ্য সংগ্রহ।
- বৈশিষ্ট্য:
- ইনডেক্স ব্যবহার করে দ্রুত ডেটা খোঁজা এবং অ্যাক্সেস করা যায়।
- একটি বা একাধিক ইনডেক্স তৈরি করা যেতে পারে।
- এটি আরও বেশি জটিল এবং আর্কাইভিং বা পুনরুদ্ধার ক্ষেত্রে খুবই কার্যকর।
উদাহরণ:
SELECT CustomerFile ASSIGN TO 'CUST.DAT'
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC.এখানে, CustomerFile একটি ইনডেক্সড ফাইল, যেখানে ডেটা অ্যাক্সেসের জন্য একটি ইনডেক্স ব্যবহার করা হবে।
৩. Relative Files (রিলেটিভ ফাইল)
Relative Files একটি ফাইল টাইপ যেখানে ডেটা নির্দিষ্ট একটি রেকর্ড পজিশন বা অ্যাড্রেসের মাধ্যমে অ্যাক্সেস করা হয়। প্রতিটি রেকর্ড একটি নির্দিষ্ট লোকেশনে থাকে এবং আপনি যে পজিশনে ডেটা চান, সেই পজিশন দিয়ে তা খুঁজে বের করতে পারেন। এই ধরনের ফাইল দ্রুত ডেটা অ্যাক্সেসের জন্য খুবই উপযোগী।
- ব্যবহার: Relative Files সাধারণত ছোট থেকে মাঝারি আকারের ডেটাবেসে ব্যবহার করা হয়, যেখানে দ্রুত অ্যাক্সেস প্রয়োজন, যেমন বিভিন্ন ধরনের সার্ভার ডেটাবেস এবং গ্রাহক তালিকা।
- বৈশিষ্ট্য:
- রেকর্ডের জন্য একটি নির্দিষ্ট পজিশন থাকে, যা পরবর্তী রেকর্ডের সাথেও সম্পর্কিত থাকে।
- ফাইলটি পরিচালনা করা সহজ এবং দ্রুত অ্যাক্সেস করা যায়।
- পজিশন ভেদে ডেটার অ্যাক্সেস করা যায়, তবে একে একে ডেটা পড়া বা লেখার ক্ষমতা নেই।
উদাহরণ:
SELECT EmployeeFile ASSIGN TO 'EMP.DAT'
ORGANIZATION IS RELATIVE.এখানে, EmployeeFile একটি রিলেটিভ ফাইল, যেখানে রেকর্ডের অ্যাক্সেস করা হয় নির্দিষ্ট অবস্থান থেকে।
সারসংক্ষেপ
COBOL এ ফাইল প্রকারভেদ তিনটি প্রধান বিভাগে ভাগ করা যায়:
- Sequential Files: যেখানে ডেটা একটানা সংরক্ষণ করা হয় এবং একে একে পড়া হয়।
- Indexed Files: যেখানে ডেটা ইনডেক্সের মাধ্যমে দ্রুত খোঁজা এবং অ্যাক্সেস করা যায়।
- Relative Files: যেখানে ডেটার অ্যাক্সেস নির্দিষ্ট পজিশন দ্বারা করা হয় এবং দ্রুত পজিশন ভিত্তিক অ্যাক্সেস করা যায়।
প্রতিটি ফাইল প্রকারের নিজস্ব সুবিধা এবং ব্যবহার রয়েছে, এবং সেগুলো প্রোগ্রামের প্রয়োজন অনুযায়ী নির্বাচন করা হয়।
COBOL-এ ফাইল অপারেশন: OPEN, CLOSE, READ, WRITE, REWRITE, DELETE
COBOL-এ ফাইল অপারেশনগুলি ডেটা ফাইল ম্যানিপুলেশন করার জন্য ব্যবহৃত হয়। এই অপারেশনগুলি ফাইল তৈরি, ফাইলের মধ্যে ডেটা লেখা, পড়া, সংশোধন এবং মুছে ফেলার কাজ করে। COBOL-এ সাধারণত তিনটি ধরনের ফাইল ব্যবহৃত হয়: Sequential, Indexed, এবং Relative। এই ফাইলগুলোর উপর বিভিন্ন অপারেশন কার্যকর হয়।
নীচে COBOL-এ OPEN, CLOSE, READ, WRITE, REWRITE, এবং DELETE অপারেশনের বিস্তারিত ব্যাখ্যা দেওয়া হল।
১. OPEN (ফাইল খুলা)
OPEN অপারেশনটি একটি ফাইলকে ব্যবহারের জন্য প্রস্তুত করে এবং নির্দিষ্ট মোডে (Input, Output, I-O) সেট করে। ফাইলটি যখন ওপেন করা হয়, তখন এটি ডেটা পড়া বা লেখা যাবে।
Syntax:
OPEN [MODE] file-name- MODE: ফাইলের কাজের ধরন। এটি INPUT, OUTPUT, অথবা I-O হতে পারে।
- file-name: ফাইলটির নাম।
উদাহরণ:
OPEN INPUT CUSTOMER-FILE.
OPEN OUTPUT EMPLOYEE-FILE.ব্যাখ্যা:
OPEN INPUTফাইলটি শুধুমাত্র পড়ার জন্য খুলবে।OPEN OUTPUTফাইলটি শুধুমাত্র লেখার জন্য খুলবে।
২. CLOSE (ফাইল বন্ধ করা)
CLOSE অপারেশনটি ফাইলটি বন্ধ করার জন্য ব্যবহৃত হয়, যাতে পরবর্তী কাজ করার আগে ফাইলের সমস্ত কার্যক্রম শেষ হয়ে যায়।
Syntax:
CLOSE file-nameউদাহরণ:
CLOSE CUSTOMER-FILE.
CLOSE EMPLOYEE-FILE.ব্যাখ্যা:
- ফাইলগুলিকে বন্ধ করতে
CLOSEব্যবহার করা হয়, যাতে পরবর্তী সময়ে ফাইলটিতে কাজ করার জন্য রিসোর্স ফ্রি করা যায়।
৩. READ (ফাইল থেকে পড়া)
READ অপারেশনটি ফাইল থেকে ডেটা পড়ে এবং ডেটা ফাইলের বর্তমান রেকর্ডে মেমোরিতে স্থানান্তর করে।
Syntax:
READ file-name INTO record-name- file-name: যে ফাইল থেকে ডেটা পড়া হবে।
- record-name: মেমোরিতে যেখানে ডেটা পড়ে রাখা হবে।
উদাহরণ:
READ CUSTOMER-FILE INTO CUSTOMER-RECORD.
IF EOF
DISPLAY 'End of File reached'
END-IF.ব্যাখ্যা:
READফাইল থেকে ডেটা পড়ে এবং সেটিCUSTOMER-RECORDনামে একটি রেকর্ডে স্থাপন করে।EOFচেক করা হয়, অর্থাৎ ফাইলের শেষ রেকর্ড পড়া হয়ে গেলে এটি চিহ্নিত করবে।
৪. WRITE (ফাইলে লেখা)
WRITE অপারেশনটি ফাইলে নতুন রেকর্ড লিখতে ব্যবহৃত হয়।
Syntax:
WRITE record-name [FROM record-name]- record-name: ফাইলের মধ্যে যে রেকর্ডটি লেখা হবে।
উদাহরণ:
WRITE CUSTOMER-RECORD.ব্যাখ্যা:
- এই কোডটি
CUSTOMER-RECORDরেকর্ডটি ফাইলে লিখে দিবে।
৫. REWRITE (ফাইলে রেকর্ড আপডেট করা)
REWRITE অপারেশনটি একটি ফাইলের একটি বিদ্যমান রেকর্ড পরিবর্তন করতে ব্যবহৃত হয়। এটি মূলত ফাইলের মধ্যে সংশোধন করা রেকর্ডের সাথে পুরনো রেকর্ড প্রতিস্থাপন করে।
Syntax:
REWRITE record-nameউদাহরণ:
REWRITE CUSTOMER-RECORD.ব্যাখ্যা:
- এই কমান্ডটি
CUSTOMER-RECORDরেকর্ডটি ফাইলে পুনর্লিখন করবে।
৬. DELETE (ফাইল থেকে রেকর্ড মুছে ফেলা)
DELETE অপারেশনটি ফাইল থেকে একটি রেকর্ড মুছে ফেলার জন্য ব্যবহৃত হয়।
Syntax:
DELETE record-nameউদাহরণ:
DELETE CUSTOMER-RECORD.ব্যাখ্যা:
- এই কোডটি
CUSTOMER-RECORDরেকর্ডটি ফাইল থেকে মুছে ফেলবে।
সারসংক্ষেপ
| অপারেশন | বর্ণনা |
|---|---|
| OPEN | ফাইলটি খুলতে ব্যবহৃত হয়, যেখানে ইনপুট, আউটপুট বা I-O মোড ব্যবহার করা যায়। |
| CLOSE | ফাইলটি বন্ধ করার জন্য ব্যবহৃত হয়, যাতে পরবর্তী কাজের জন্য ফাইলের রিসোর্স ফ্রি করা যায়। |
| READ | ফাইল থেকে ডেটা পড়ে এবং মেমোরিতে স্থানান্তরিত করে। |
| WRITE | ফাইলে নতুন রেকর্ড লেখার জন্য ব্যবহৃত হয়। |
| REWRITE | ফাইলে বিদ্যমান রেকর্ড আপডেট করার জন্য ব্যবহৃত হয়। |
| DELETE | ফাইল থেকে একটি রেকর্ড মুছে ফেলার জন্য ব্যবহৃত হয়। |
COBOL-এ ফাইল অপারেশনগুলি ডেটা ম্যানিপুলেশনের জন্য অত্যন্ত গুরুত্বপূর্ণ, এবং এটি প্রোগ্রামারের জন্য ফাইল পরিচালনা আরও সহজ করে তোলে।
COBOL এ ফাইল স্ট্যাটাস চেকিং
COBOL প্রোগ্রামিং ভাষায় ফাইল স্ট্যাটাস চেকিং অত্যন্ত গুরুত্বপূর্ণ একটি ফিচার, যা ফাইল অপারেশনগুলির সফলতা বা ব্যর্থতা যাচাই করার জন্য ব্যবহৃত হয়। যখন কোনো ফাইলে ডেটা রিড বা রাইট করা হয়, তখন সঠিকভাবে অপারেশন সম্পন্ন হয়েছে কিনা তা নিশ্চিত করতে FILE STATUS নামক একটি ফিচার ব্যবহার করা হয়। এটি সাধারণত FILE CONTROL বিভাগে ডিফাইন করা হয় এবং অপারেশন চলাকালীন ফাইলের অবস্থা চেক করতে ব্যবহৃত হয়।
১. FILE STATUS ফিল্ডের ব্যবহার
COBOL-এ FILE STATUS একটি বিশেষ 2-পদবি (2-digit) ফিল্ড হিসেবে ডিফাইন করা হয়, যা ফাইলের স্ট্যাটাস কোড ধারণ করে। এটি সাধারনত 01 লেভেল এ ডিফাইন করা হয়।
১.১ FILE STATUS ফিল্ড ডিফাইন করা
01 FILE-STATUS PIC 99.এখানে, FILE-STATUS একটি দুই অংকের কোড ধারণ করবে, যা বিভিন্ন ফাইল অপারেশন সাফল্য বা ব্যর্থতার ইন্ডিকেটর হিসেবে কাজ করবে।
২. FILE STATUS কোড
COBOL-এ ফাইল স্ট্যাটাস কোডগুলি নির্দেশ করে যে ফাইল অপারেশন সফল হয়েছে কি না, এবং যদি না হয়ে থাকে, তাহলে কী কারণে ব্যর্থতা ঘটেছে। নীচে কিছু সাধারণ FILE STATUS কোড দেওয়া হলো:
- 00: অপারেশন সফলভাবে সম্পন্ন হয়েছে।
- 02: ফাইলের শেষ (End of File, EOF) পৌঁছানো হয়েছে।
- 05: ফাইল ওপেন করা সম্ভব হয়নি।
- 10: ফাইল রিড/রাইট করার সময় কোনো সমস্যা হয়েছে।
- 35: ফাইলের জন্য পর্যাপ্ত স্থান নেই (Disk full)।
- 39: ফাইলের মধ্যে ডেটার গঠন সঠিক নয় (File structure error)।
- 90: ফাইলের নাম বা অবস্থান সঠিক নয় (Invalid file name or location)।
এছাড়া আরও অনেক কোড থাকতে পারে যা নির্দিষ্ট পরিস্থিতিতে ব্যবহার করা হয়, তবে এইগুলো সবচেয়ে সাধারণ এবং গুরুত্বপূর্ণ কোড।
৩. FILE STATUS চেকিংয়ের উদাহরণ
COBOL প্রোগ্রামে FILE STATUS চেক করার জন্য সাধারণত IF স্টেটমেন্ট ব্যবহার করা হয়, যা ফাইলের স্ট্যাটাস কোডের মান চেক করে ফাইল অপারেশন সফল হয়েছে কিনা তা নির্ধারণ করে।
৩.১ ফাইল ওপেন করার পর FILE STATUS চেক করা
SELECT employee-file ASSIGN TO 'EMPLOYEE.DAT'
ORGANIZATION IS LINE SEQUENTIAL
ACCESS MODE IS SEQUENTIAL
FILE STATUS IS FILE-STATUS.
OPEN INPUT employee-file.
IF FILE-STATUS = "00"
DISPLAY 'File opened successfully.'
ELSE
DISPLAY 'Error opening file. Status code: ' FILE-STATUS
END-IF.এখানে, FILE-STATUS চেক করা হয়েছে ফাইল OPEN INPUT অপারেশনের পরে। যদি FILE-STATUS কোড 00 হয়, তাহলে ফাইল সফলভাবে ওপেন হয়েছে, অন্যথায় একটি ত্রুটি বার্তা প্রদর্শিত হবে।
৩.২ ফাইল রিড করার পর FILE STATUS চেক করা
READ employee-file INTO employee-record
AT END
DISPLAY 'End of file reached.'
NOT AT END
IF FILE-STATUS = "00"
DISPLAY 'Record read successfully.'
ELSE
DISPLAY 'Error reading file. Status code: ' FILE-STATUS
END-IF
END-READ.এখানে, READ অপারেশনের পর FILE-STATUS চেক করা হচ্ছে, যদি FILE-STATUS কোড 00 হয়, তবে রেকর্ড সফলভাবে রিড হয়েছে, অন্যথায় একটি ত্রুটি বার্তা প্রদর্শিত হবে।
৩.৩ ফাইল ক্লোজ করার পর FILE STATUS চেক করা
CLOSE employee-file.
IF FILE-STATUS = "00"
DISPLAY 'File closed successfully.'
ELSE
DISPLAY 'Error closing file. Status code: ' FILE-STATUS
END-IF.এখানে, ফাইল CLOSE করার পর FILE-STATUS চেক করা হচ্ছে। যদি ফাইল সফলভাবে বন্ধ হয়, তবে 00 কোড প্রদর্শিত হবে, অন্যথায় ত্রুটি কোড দেখানো হবে।
৪. FILE STATUS চেকিং-এর গুরুত্ব
- ত্রুটি চেকিং: ফাইল অপারেশনগুলির সফলতা বা ব্যর্থতা চেক করার জন্য FILE STATUS কোড অত্যন্ত গুরুত্বপূর্ণ। এটি আপনাকে ডেটা প্রক্রিয়াকরণে যেকোনো ত্রুটি শনাক্ত করতে সহায়ক।
- ডিবাগিং সহজতর: যখন ফাইল অপারেশন কাজ করছে না, তখন FILE STATUS কোডের মাধ্যমে সঠিক ত্রুটির কোড জানা যায়, যা সমস্যা সমাধান করতে সাহায্য করে।
- ব্যবহারকারীর জন্য ফলস্বরূপ বার্তা: ফাইলের সঠিক স্ট্যাটাস জানলে ব্যবহারকারী বা ডেভেলপারকে বুঝতে সহজ হয় কেন একটি অপারেশন সফল হয়নি এবং কীভাবে এটি ঠিক করা যেতে পারে।
সারসংক্ষেপ
FILE STATUS COBOL প্রোগ্রামে ফাইল অপারেশনগুলির সফলতা বা ব্যর্থতা চেক করতে ব্যবহৃত একটি গুরুত্বপূর্ণ ফিচার। এটি ফাইল অপারেশনের পরবর্তী পদক্ষেপগুলি নির্ধারণ করতে সহায়ক এবং ত্রুটি সমাধানে সাহায্য করে। FILE STATUS কোডের মাধ্যমে, আপনি ফাইলের সাথে সম্পর্কিত সমস্যাগুলি সনাক্ত করতে এবং সেগুলি সংশোধন করতে পারেন।
COBOL এ ফাইল হ্যান্ডলিং এর উদাহরণ
COBOL-এ ফাইল হ্যান্ডলিং এর মাধ্যমে আমরা ফাইল থেকে ডেটা পড়া, ফাইলে ডেটা লেখা এবং ফাইল আপডেট করার কাজ করতে পারি। COBOL বিভিন্ন ধরনের ফাইল সমর্থন করে, যেমন Sequential Files (যেখানে ডেটা একে একে পড়ে বা লেখা হয়) এবং Indexed Files (যেখানে নির্দিষ্ট কী অনুযায়ী ডেটা প্রবেশ করা যায়)। এখানে Sequential File এর একটি উদাহরণ দেখানো হলো, যেখানে একটি ফাইলে ডেটা লেখা এবং পড়ার কাজ করা হবে।
উদাহরণ ১: ফাইল তৈরি এবং লেখা (Create and Write to a File)
এই উদাহরণে আমরা একটি Sequential File তৈরি করব এবং তাতে কিছু ডেটা লিখব।
ফাইল ডেফিনিশন:
IDENTIFICATION DIVISION.
PROGRAM-ID. FileHandlingExample.
DATA DIVISION.
FILE SECTION.
FD EMPLOYEE-FILE.
01 EMPLOYEE-RECORD.
05 EMPLOYEE-ID PIC 9(4).
05 EMPLOYEE-NAME PIC X(30).
05 EMPLOYEE-SALARY PIC 9(5)V99.
WORKING-STORAGE SECTION.
01 END-FILE PIC X VALUE 'N'.
PROCEDURE DIVISION.
OPEN OUTPUT EMPLOYEE-FILE
MOVE 1001 TO EMPLOYEE-ID
MOVE 'John Doe' TO EMPLOYEE-NAME
MOVE 50000.00 TO EMPLOYEE-SALARY
WRITE EMPLOYEE-RECORD
MOVE 1002 TO EMPLOYEE-ID
MOVE 'Jane Smith' TO EMPLOYEE-NAME
MOVE 55000.00 TO EMPLOYEE-SALARY
WRITE EMPLOYEE-RECORD
CLOSE EMPLOYEE-FILE
DISPLAY 'Records written to file.'
STOP RUN.ব্যাখ্যা:
- FILE SECTION: এখানে EMPLOYEE-FILE নামে একটি ফাইল ডিফাইন করা হয়েছে এবং এর মধ্যে EMPLOYEE-RECORD নামক একটি রেকর্ড ডিফাইন করা হয়েছে, যাতে EMPLOYEE-ID, EMPLOYEE-NAME, এবং EMPLOYEE-SALARY অন্তর্ভুক্ত রয়েছে।
- OPEN OUTPUT: ফাইলটি আউটপুট মোডে খুলছে, অর্থাৎ ডেটা লেখা যাবে।
- WRITE: ফাইলে ডেটা লেখা হচ্ছে। এখানে প্রথমে EMPLOYEE-RECORD রেকর্ডে মান দেয়া হচ্ছে এবং তারপর
WRITEস্টেটমেন্টটি ফাইলে সেই রেকর্ডটি লেখে। - CLOSE: ফাইল বন্ধ করা হচ্ছে।
উদাহরণ ২: ফাইল থেকে ডেটা পড়া (Read from File)
এই উদাহরণে আমরা পূর্বে লেখা ফাইল থেকে ডেটা পড়ব এবং তা প্রদর্শন করব।
IDENTIFICATION DIVISION.
PROGRAM-ID. ReadFileExample.
DATA DIVISION.
FILE SECTION.
FD EMPLOYEE-FILE.
01 EMPLOYEE-RECORD.
05 EMPLOYEE-ID PIC 9(4).
05 EMPLOYEE-NAME PIC X(30).
05 EMPLOYEE-SALARY PIC 9(5)V99.
WORKING-STORAGE SECTION.
01 END-FILE PIC X VALUE 'N'.
PROCEDURE DIVISION.
OPEN INPUT EMPLOYEE-FILE
PERFORM READ-EMPLOYEE UNTIL END-FILE = 'Y'
CLOSE EMPLOYEE-FILE
STOP RUN.
READ-EMPLOYEE.
READ EMPLOYEE-FILE INTO EMPLOYEE-RECORD
AT END
MOVE 'Y' TO END-FILE
NOT AT END
DISPLAY 'Employee ID: ' EMPLOYEE-ID
DISPLAY 'Employee Name: ' EMPLOYEE-NAME
DISPLAY 'Employee Salary: ' EMPLOYEE-SALARY
END-READ.ব্যাখ্যা:
- OPEN INPUT: ফাইলটি ইনপুট মোডে খোলা হয়েছে, অর্থাৎ ফাইল থেকে ডেটা পড়া যাবে।
- READ:
READস্টেটমেন্টটি ফাইল থেকে ডেটা পড়ে এবং EMPLOYEE-RECORD রেকর্ডে রাখে। - AT END: যদি ফাইলের শেষ হয়, তাহলে END-FILE মান
'Y'হবে এবং লুপ বন্ধ হবে। - DISPLAY: ফাইল থেকে পড়া ডেটা স্ক্রীনে প্রদর্শন করা হচ্ছে।
উদাহরণ ৩: ফাইল আপডেট (Update Data in File)
এই উদাহরণে আমরা একটি ফাইলের নির্দিষ্ট রেকর্ড আপডেট করব।
IDENTIFICATION DIVISION.
PROGRAM-ID. UpdateFileExample.
DATA DIVISION.
FILE SECTION.
FD EMPLOYEE-FILE.
01 EMPLOYEE-RECORD.
05 EMPLOYEE-ID PIC 9(4).
05 EMPLOYEE-NAME PIC X(30).
05 EMPLOYEE-SALARY PIC 9(5)V99.
WORKING-STORAGE SECTION.
01 END-FILE PIC X VALUE 'N'.
PROCEDURE DIVISION.
OPEN I/O EMPLOYEE-FILE
PERFORM READ-EMPLOYEE UNTIL END-FILE = 'Y'
CLOSE EMPLOYEE-FILE
STOP RUN.
READ-EMPLOYEE.
READ EMPLOYEE-FILE INTO EMPLOYEE-RECORD
AT END
MOVE 'Y' TO END-FILE
NOT AT END
IF EMPLOYEE-ID = 1002
MOVE 60000.00 TO EMPLOYEE-SALARY
REWRITE EMPLOYEE-RECORD
DISPLAY 'Updated salary for Employee ID 1002'
END-IF
END-READ.ব্যাখ্যা:
- OPEN I/O: ফাইলটি ইনপুট/আউটপুট মোডে খোলা হয়েছে, যাতে ফাইল থেকে ডেটা পড়া এবং ফাইলে আপডেট করা যায়।
- REWRITE:
REWRITEস্টেটমেন্টটি ব্যবহার করা হয়েছে, যা পড়া রেকর্ডে পরিবর্তন করে ফাইলে আপডেট করবে। - IF: শর্ত যাচাই করে EMPLOYEE-ID এর মান ১০০২ হলে তার SALARY আপডেট করা হচ্ছে।
সারসংক্ষেপ
COBOL-এ ফাইল হ্যান্ডলিং অত্যন্ত গুরুত্বপূর্ণ, বিশেষত ব্যবসায়িক সিস্টেমে এবং বড় আকারের ডেটা প্রক্রিয়াকরণের ক্ষেত্রে। আমরা Sequential Files এর মাধ্যমে ডেটা লেখা, পড়া এবং আপডেট করা দেখেছি। COBOL-এ ফাইল হ্যান্ডলিং করতে মূলত OPEN, READ, WRITE, REWRITE, এবং CLOSE স্টেটমেন্ট ব্যবহার করা হয়।
Read more